<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>迭代器-特性</title>
</head>
<body>
<script>
    // 在JavaScript中 iterator接口 就是在对象中的一个属性 (全名:Symbol iterator)

    const name=['张三','李四','王五']

    // 1. 使用命令遍历
    /*
       * for in 循环的是下标 0 1 2 3
       * for of 循环的是值(value) '张三','李四','王五'
    */
    // for (let item of name) {
    //   console.log(item)
    // }

    // 2. 使用原生方式遍历
    /*
        * 创建一个指针对象，指向当前数据结构的起始位置
        * 第一次调用next方法，指针自动指向数据结构的第一个成员
        * 接下来不断地调用next方法，指针一直往后移动，知直到指向最后一个成员
        * 每次调用next方法返回一个包含value和done属性的对象
    */
    let iterator=name[Symbol.iterator]();//查询next()方法存在哪里
    console.log(iterator)
    console.log(iterator.next())//调用next方法
    console.log(iterator.next())//调用next方法
    console.log(iterator.next())//调用next方法
    console.log(iterator.next())//调用next方法    出现 done 表示数组遍历完成
</script>
</body>
</html>